package me.helllp.demo.dubboxStudy;

import me.helllp.demo.dubboxStudy.spi.ShowMessage;

import com.alibaba.dubbo.common.extension.ExtensionLoader;

/**
 * 演示如何自动以扩展<br/>
 * 	1. 扩展接口需要注解 @SPI
 * 	2. 加载的时候，默认加载路径：META-INF/dubbo/internal/；META-INF/services/
 * 	3. 扩展的定义文件以扩展接口为名字，放置在默认加载路径下，文件内容key,Value方式存储扩展接口的实现
 * 
 * @author linxm
 *
 */
public class Step02 {
	public static void main(String[] args) {
		ExtensionLoader<ShowMessage> loader = ExtensionLoader.getExtensionLoader(ShowMessage.class);
		
		//	通过指定名称获取实例
		System.out.println(loader.getExtension("first").getMessage());
		//	获取默认扩展实例，
		System.out.println(loader.getDefaultExtension().getMessage());
		//	获取@Adaptive实例
		System.out.println(loader.getAdaptiveExtension().getMessage());
	}
}
